﻿<Application x:Class="App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
    StartupUri="Window1.xaml">
    <Application.Resources>
        
		<LinearGradientBrush x:Key="ProgressBarBackground" EndPoint="1,0" StartPoint="0,0">
			<GradientStop Color="#BABABA" Offset="0"/>
			<GradientStop Color="#C7C7C7" Offset="0.5"/>
			<GradientStop Color="#BABABA" Offset="1"/>
		</LinearGradientBrush>
		<LinearGradientBrush x:Key="ProgressBarBorderBrush" EndPoint="0,1" StartPoint="0,0">
			<GradientStop Color="#B2B2B2" Offset="0"/>
			<GradientStop Color="#8C8C8C" Offset="1"/>
		</LinearGradientBrush>
		<LinearGradientBrush x:Key="ProgressBarGlassyHighlight" EndPoint="0,1" StartPoint="0,0">
			<GradientStop Color="#50FFFFFF" Offset="0.5385"/>
			<GradientStop Color="#00FFFFFF" Offset="0.5385"/>
		</LinearGradientBrush>
		<LinearGradientBrush x:Key="ProgressBarTopHighlight" EndPoint="0,1" StartPoint="0,0">
			<GradientStop Color="#80FFFFFF" Offset="0.05"/>
			<GradientStop Color="#00FFFFFF" Offset="0.25"/>
		</LinearGradientBrush>
		<LinearGradientBrush x:Key="ProgressBarIndicatorAnimatedFill" EndPoint="0,0" StartPoint="-100,0" MappingMode="Absolute">
			<GradientStop Color="#00000000" Offset="0"/>
			<GradientStop Color="#FF000000" Offset="0.4"/>
			<GradientStop Color="#FF000000" Offset="0.6"/>
			<GradientStop Color="#00000000" Offset="1"/>
		</LinearGradientBrush>
		<LinearGradientBrush x:Key="ProgressBarIndicatorDarkEdgeLeft" EndPoint="1,0" StartPoint="0,0">
			<GradientStop Color="#0C000000" Offset="0"/>
			<GradientStop Color="#20000000" Offset="0.3"/>
			<GradientStop Color="#00000000" Offset="1"/>
		</LinearGradientBrush>
		<LinearGradientBrush x:Key="ProgressBarIndicatorDarkEdgeRight" EndPoint="1,0" StartPoint="0,0">
			<GradientStop Color="#00000000" Offset="0"/>
			<GradientStop Color="#20000000" Offset="0.7"/>
			<GradientStop Color="#0C000000" Offset="1"/>
		</LinearGradientBrush>
		<RadialGradientBrush x:Key="ProgressBarIndicatorLightingEffectLeft" RelativeTransform="1,0,0,1,0.5,0.5" RadiusX="1" RadiusY="1">
			<GradientStop Color="#60FFFFC4" Offset="0"/>
			<GradientStop Color="#00FFFFC4" Offset="1"/>
		</RadialGradientBrush>
		<LinearGradientBrush x:Key="ProgressBarIndicatorLightingEffect" EndPoint="0,0" StartPoint="0,1">
			<GradientStop Color="#60FFFFC4" Offset="0"/>
			<GradientStop Color="#00FFFFC4" Offset="1"/>
		</LinearGradientBrush>
		<RadialGradientBrush x:Key="ProgressBarIndicatorLightingEffectRight" RelativeTransform="1,0,0,1,-0.5,0.5" RadiusX="1" RadiusY="1">
			<GradientStop Color="#60FFFFC4" Offset="0"/>
			<GradientStop Color="#00FFFFC4" Offset="1"/>
		</RadialGradientBrush>
		<LinearGradientBrush x:Key="ProgressBarIndicatorGlassyHighlight" EndPoint="0,1" StartPoint="0,0">
			<GradientStop Color="#90FFFFFF" Offset="0.5385"/>
			<GradientStop Color="#00FFFFFF" Offset="0.5385"/>
		</LinearGradientBrush>
		
        
        <!--I modified the base style to be sensitve to the Tag property.
            If set to Y, will hide the animation and hightlight colors of the
            progress bar.-->
		<Style x:Key="OnOffProgressBarStyle" TargetType="{x:Type ProgressBar}">
			<Setter Property="Foreground" Value="#01D328"/>
			<Setter Property="Background" Value="{StaticResource ProgressBarBackground}"/>
			<Setter Property="BorderBrush" Value="{StaticResource ProgressBarBorderBrush}"/>
			<Setter Property="BorderThickness" Value="1"/>
			<Setter Property="Template">
				<Setter.Value>
					<ControlTemplate TargetType="{x:Type ProgressBar}">
						<Grid SnapsToDevicePixels="true" x:Name="Background">
							<Rectangle Fill="{TemplateBinding Background}" RadiusX="2" RadiusY="2"/>
							<Border Margin="1" Background="{StaticResource ProgressBarGlassyHighlight}" CornerRadius="2"/>
							<Border Margin="1" Background="{StaticResource ProgressBarTopHighlight}" BorderBrush="#80FFFFFF" BorderThickness="1,0,1,1"/>
							<Rectangle Margin="1" x:Name="PART_Track"/>
							<Decorator HorizontalAlignment="Left" Margin="1" x:Name="PART_Indicator">
								<Grid x:Name="Foreground">
									<Grid.ColumnDefinitions>
										<ColumnDefinition MaxWidth="15"/>
										<ColumnDefinition Width="0.1*"/>
										<ColumnDefinition MaxWidth="15"/>
									</Grid.ColumnDefinitions>
									<Grid.RowDefinitions>
										<RowDefinition/>
										<RowDefinition/>
									</Grid.RowDefinitions>
									<Rectangle Fill="{TemplateBinding Foreground}" x:Name="Indicator" Grid.ColumnSpan="3" Grid.RowSpan="2" Visibility="Visible"/>
									<Rectangle Fill="{TemplateBinding Foreground}" x:Name="Animation" Grid.ColumnSpan="3" Grid.RowSpan="2" Visibility="Visible">
										<Rectangle.OpacityMask>
											<MultiBinding>
												<MultiBinding.Converter>
													<Microsoft_Windows_Themes:ProgressBarHighlightConverter/>
												</MultiBinding.Converter>
												<Binding Source="{StaticResource ProgressBarIndicatorAnimatedFill}"/>
												<Binding Path="ActualWidth" ElementName="Background"/>
												<Binding Path="ActualHeight" ElementName="Background"/>
											</MultiBinding>
										</Rectangle.OpacityMask>
									</Rectangle>
									<Rectangle Fill="{StaticResource ProgressBarIndicatorDarkEdgeLeft}" RadiusX="1" RadiusY="1" Margin="1,1,0,1" x:Name="LeftDark" Grid.RowSpan="2" Visibility="Visible"/>
									<Rectangle Fill="{StaticResource ProgressBarIndicatorDarkEdgeRight}" RadiusX="1" RadiusY="1" Margin="0,1,1,1" x:Name="RightDark" Grid.Column="2" Grid.RowSpan="2" Visibility="Visible"/>
									<Rectangle Fill="{StaticResource ProgressBarIndicatorLightingEffectLeft}" x:Name="LeftLight" Grid.Column="0" Grid.Row="2" Visibility="Visible"/>
									<Rectangle Fill="{StaticResource ProgressBarIndicatorLightingEffect}" x:Name="CenterLight" Grid.Column="1" Grid.Row="2" Visibility="Visible"/>
									<Rectangle Fill="{StaticResource ProgressBarIndicatorLightingEffectRight}" x:Name="RightLight" Grid.Column="2" Grid.Row="2" Visibility="Visible"/>
									<Border x:Name="Highlight1" Grid.ColumnSpan="3" Grid.RowSpan="2" Background="{StaticResource ProgressBarIndicatorGlassyHighlight}" Visibility="Visible"/>
									<Border x:Name="Highlight2" Grid.ColumnSpan="3" Grid.RowSpan="2" Background="{StaticResource ProgressBarTopHighlight}" Visibility="Visible"/>
								</Grid>
							</Decorator>
							<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2"/>
						</Grid>
						<ControlTemplate.Triggers>
							<Trigger Property="Tag" Value="Y">
								<Setter Property="Visibility" TargetName="Animation" Value="Hidden"/>
								<Setter Property="Visibility" TargetName="LeftDark" Value="Hidden"/>
								<Setter Property="Visibility" TargetName="RightDark" Value="Hidden"/>
								<Setter Property="Visibility" TargetName="LeftLight" Value="Hidden"/>
								<Setter Property="Visibility" TargetName="CenterLight" Value="Hidden"/>
								<Setter Property="Visibility" TargetName="RightLight" Value="Hidden"/>
								<Setter Property="Visibility" TargetName="Highlight1" Value="Hidden"/>
								<Setter Property="Visibility" TargetName="Highlight2" Value="Hidden"/>
							</Trigger>
							<Trigger Property="Orientation" Value="Vertical">
								<Setter Property="LayoutTransform" TargetName="Background">
									<Setter.Value>
										<RotateTransform Angle="-90"/>
									</Setter.Value>
								</Setter>
								<Setter Property="LayoutTransform" TargetName="PART_Track">
									<Setter.Value>
										<RotateTransform Angle="90"/>
									</Setter.Value>
								</Setter>
								<Setter Property="LayoutTransform" TargetName="PART_Indicator">
									<Setter.Value>
										<RotateTransform Angle="90"/>
									</Setter.Value>
								</Setter>
								<Setter Property="LayoutTransform" TargetName="Foreground">
									<Setter.Value>
										<RotateTransform Angle="-90"/>
									</Setter.Value>
								</Setter>
							</Trigger>
							<Trigger Property="IsIndeterminate" Value="true">
								<Setter Property="Visibility" TargetName="LeftDark" Value="Collapsed"/>
								<Setter Property="Visibility" TargetName="RightDark" Value="Collapsed"/>
								<Setter Property="Visibility" TargetName="LeftLight" Value="Collapsed"/>
								<Setter Property="Visibility" TargetName="CenterLight" Value="Collapsed"/>
								<Setter Property="Visibility" TargetName="RightLight" Value="Collapsed"/>
								<Setter Property="Visibility" TargetName="Indicator" Value="Collapsed"/>
							</Trigger>
							<Trigger Property="IsIndeterminate" Value="false">
								<Setter Property="Fill" TargetName="Animation" Value="#80B5FFA9"/>
							</Trigger>
						</ControlTemplate.Triggers>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>
		
		
    </Application.Resources>
</Application>
